package innerclassdemo;

class OuterClass{
    public int date1=1;
    private int date2=2;
    public static int date3=3;
    /**
     *静态内部类
     * 如何拿到静态内部类对象
     * OuterClass.InnerClass innerClass= new OuterClass.InnerClass();
     * 2.不能在静态内部类当中，直接访问外部类非静态的数据成员
     *
     */

    static class InnerClass{

        public int date4=4;
        private int date5=5;
        public static int date6=6;

        OuterClass outerClass =new OuterClass();

        public InnerClass(){
            System.out.println("静态内部类构造方法");

        }
        public void  test(){
            System.out.println("静态内部类普通方法");
            System.out.println("外部类静态成员变量"+date3);
            System.out.println("外部类普通成员变量"+outerClass.date1);
            System.out.println("外部类普通成员变量"+outerClass.date2);
            System.out.println("静态内部类成员变量"+this.date4);
            System.out.println("静态内部类成员变量"+this.date5);




        }
    }

}








public class Test {




    public static void main(String[] args) {
        OuterClass.InnerClass innerClass= new OuterClass.InnerClass();

        System.out.println(innerClass.date4);
        innerClass.test();


    }










}
